package com.jt.provider.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 在此Controller中读取配置中心的一个开关值
 * (useLocalCache-是否使用本地缓存)
 */
@RefreshScope
@RestController
public class ProviderCacheController {
    /**
     * 从配置文件或配置中心读取useLocalCache的值,
     * 并将这个值赋值给ProviderCacheController类中的
     * useLocalCache属性.
     */
    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    @GetMapping("/provider/cache01")
    public String doUseLocalCache01(){
        /*
          无论配置中心配置的useLocalCache的值是什么,
          假如我们这里useLocalCache的值始终是默认值false,
          说明没有从配置中心读取到useLocalCache的值,读取
          不到的原因可能是这样的:
          1)项目中添加的配置依赖有问题
          2)配置文件的名字不是bootstrap.yml
          3)配置文件对配置中心数据获取的配置有问题
          4)useLocalCache这个单词与配置中心配置的不一致.
         */

        return "userLocalCache's value is "+useLocalCache;
    }

}
